package vg.services.log_manager.interfaces;

/**
 * Interface for logger.
 *
 * @author Timur Zolotuhin (e-mail: tzolotuhin@gmail.com)
 */
public interface ILogger {
	public void enableDebugMessage(boolean enable);

    /**
	 * This method prints debug message.
	 */
	public void printDebug(String message);

    /**
	 * This method prints info message.
	 */
	public void printInfo(String message);

	/**
	 * This method prints error message.
	 */
	public void printError(String message);

    /**
     * This method prints message about error and after throw exception.
     * Example: method was called with illegal arguments.
     */
    public void printErrorAndThrowRuntimeException(String message) throws RuntimeException;

	/**
	 * This method prints stack trace.
	 */
	public void printStackTrace(StackTraceElement[] trace);

    /**
	 * This method prints exception. 
	 */
	public void printException(Throwable ex);

    /**
	 * This method returns information about current logger.
	 */
	public String getLoggerInfo();
}
